/*// src/main_web.cpp
#include "../include/PageProcessor.h"
#include <iostream>

using namespace std;

int main()
{
    cout << "=== 测试PageProcessor构造函数 ===" << endl;

    // 创建对象，测试构造函数
    PageProcessor processor;

    cout << "🎉 构造函数测试成功！" << endl;
    return 0;
}
*/
// -----------------------------------------------------------------------
// src/main_web.cpp
/*#include "../include/PageProcessor.h"
#include <iostream>

using namespace std;

int main()
{
    cout << "=== 测试 extract_documents 函数 ===" << endl;

    // 1. 创建 PageProcessor 对象
    PageProcessor processor;

    // 2. 单独测试 extract_documents 函数
    cout << "\n--- 开始测试 XML 文档提取 ---" << endl;
    processor.extract_documents("data/webpages");

    // 3. 显示提取结果统计
    cout << "\n--- 提取结果统计 ---" << endl;
    // 这里可以添加获取文档数量的方法，或者直接查看输出信息

    cout << "\n🎉 extract_documents 测试完成！" << endl;
    cout << "请查看上面的输出信息，确认文档提取是否成功" << endl;

    return 0;
}*/
// #include "../include/PageProcessor.h"
// #include <iostream>
/*
int main()
{
    std::cout << "=== 完整流程测试（包含去重）===" << std::endl;

    PageProcessor processor;

    // 执行完整流程
    processor.process("data/webpages");

    std::cout << "=== 测试完成 ===" << std::endl;
    return 0;
}*/
// int main()
// {
//     PageProcessor processor;

//     // 完整处理流程
//     processor.extract_documents("data/webpages");
//     processor.deduplicate_documents();
//     processor.build_pages_and_offsets("output/pages.dat", "output/offsets.dat");
//     processor.build_inverted_index("output/inverted_index.dat");

//     std::cout << "=== 所有处理完成 ===" << std::endl;
//     return 0;
// }
#include "../include/PageProcessor.h"
#include <iostream>
#include <chrono>

int main()
{
    std::cout << "🚀 搜索引擎离线部分 - 开始处理" << std::endl;
    std::cout << "==========================================" << std::endl;

    // 记录开始时间
    auto start_time = std::chrono::high_resolution_clock::now();

    try
    {
        // 创建处理器
        PageProcessor processor;

        // 执行完整流程
        processor.process("data/webpages");

        // 记录结束时间
        auto end_time = std::chrono::high_resolution_clock::now();
        auto duration = std::chrono::duration_cast<std::chrono::milliseconds>(end_time - start_time);

        std::cout << "==========================================" << std::endl;
        std::cout << "🎉 所有处理完成！" << std::endl;
        std::cout << "⏱️  总耗时: " << duration.count() / 1000.0 << " 秒" << std::endl;
        std::cout << "📁 输出文件位置: output/" << std::endl;
        std::cout << "   - pages.dat (网页库)" << std::endl;
        std::cout << "   - offsets.dat (偏移库)" << std::endl;
        std::cout << "   - inverted_index.dat (倒排索引)" << std::endl;
    }
    catch (const std::exception &e)
    {
        std::cout << "❌ 处理过程中发生错误: " << e.what() << std::endl;
        return -1;
    }

    return 0;
}